package GPSChallenge;
import org.jdom2.*;

import GPSChallenge.bandera.Bandera;
import GPSChallenge.bandera.BanderaVacia;
import GPSChallenge.movimiento.Posicion;

public class Cruce {

	private Posicion posicion;
	private Bandera unaBandera;
	private Calle calleArriba;
	private Calle calleAbajo;
	private Calle calleDerecha;
	private Calle calleIzquierda;
	
	public Cruce(Posicion unaPosicion){
		
		this.posicion = unaPosicion;
		this.unaBandera = new BanderaVacia();
		this.calleAbajo = null;
		this.calleArriba = null;
		this.calleIzquierda = null;
		this.calleDerecha = null;
		
	}

	
	public Posicion obtenerPosicion() {
		
		return this.posicion;
		
	}
	
	public Bandera getBandera() {
		
		return this.unaBandera;
		
	}
	
	public void setBandera(Bandera unaBandera) {
		
		this.unaBandera = unaBandera;
	}
	
	public Calle getCalleArriba() {
		return this.calleArriba;
	}


	public void setCalleArriba(Calle calleArriba) {
		this.calleArriba = calleArriba;
	}


	public Calle getCalleAbajo() {
		return this.calleAbajo;
	}


	public void setCalleAbajo(Calle calleAbajo) {
		this.calleAbajo = calleAbajo;
	}


	public Calle getCalleDerecha() {
		return this.calleDerecha;
	}


	public void setCalleDerecha(Calle calleDerecha) {
		this.calleDerecha = calleDerecha;
	}


	public Calle getCalleIzquierda() {
		return this.calleIzquierda;
	}


	public void setCalleIzquierda(Calle calleIzquierda) {
		this.calleIzquierda = calleIzquierda;
	}
	
	public Element Serializar(){
		Element cruce = new Element("cruce");
		cruce.addContent(posicion.Serializar());
		if (calleArriba!=null){
		cruce.addContent(calleArriba.Serializar());
		} else{ cruce.setAttribute("calleArriba","null");}
		if (calleAbajo!=null){
			cruce.addContent(calleAbajo.Serializar());
			} else{ cruce.setAttribute("calleAbajo","null");}
		if (calleIzquierda!=null){
			cruce.addContent(calleIzquierda.Serializar());
			} else{ cruce.setAttribute("calleIzquierda","null");}
		if (calleDerecha!=null){
			cruce.addContent(calleDerecha.Serializar());
			} else{ cruce.setAttribute("calleDerecha","null");}
		
		return cruce;
		
	}
	
}
